package com.liu.sound.code;

import com.liu.sound.code.service.UserService;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;


/**
 *
 */
public class Test {
    public static void main(String[] args) throws IllegalAccessException {
        /**
         * 通过getBean能获取UserService的属性OrderService对象
         */
        //启动spring容器
        AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);
        UserService userService = (UserService) applicationContext.getBean("userService");//单例Bean。单例池Map<beanName,Bean对象>
        userService.test(); // com.liu.sound.code.service.OrderService@65f8f5ae
//
//        /**
//         * 通过new对象不能获取UserService的属性OrderService对象
//         */
//        UserService userService1 = new UserService();
//        userService1.test(); //null
//
//        /**
//         * 通过new对象不能获取UserService的属性OrderService对象
//         */
//        UserService userService2 = new UserService();
//        // 通过反射给属性赋值
//        for (Field field : userService2.getClass().getFields() ) {
//            // 获取使用了Autowired注解的属性
//            if (field.isAnnotationPresent(Autowired.class)) {
//                field.set(userService2, null);
//            }
//        }
//        userService2.test();
    }
}
